<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript" src="../../dist/linq.full.min.js"></script>
	<script type="text/javascript">
		console.log(Enumerable.range(1, 10).concat(Enumerable.range(1, 10)).where(function(v){return v > 2}).orderBy(function(v){return v % 3}).thenByDescending().distinct().union(Enumerable.range(5, 10)).except(Enumerable.range(1, 3)).intersect(Enumerable.range(5, 5)).reverse().toArray())

		console.log(Enumerable.range(1, 10).select(function(v){return v > 2}).toArray());

		var gs = Enumerable.range(1, 10).groupBy(function(v){return v % 3});
		gs.forEach(function(g) {
			console.log(g.key);
			g.forEach(function(v) {
				console.log('->', v);
			})
		});
		console.log(gs.selectMany().toArray());

		console.log(Enumerable.range(1, 10).zip(Enumerable.range(1, 10), function(v1, v2){return v1 * v2}).toArray());

		console.log(Enumerable.repeat(1, 10).join(','));

		console.log(Enumerable.range(1, 10).join(Enumerable.range(1, 10), function(v1, v2){return v1 + ',' + v2}, function(v){return v % 2}, function(v){return v % 3}).toArray());

		console.log(Enumerable.range(1, 10).groupJoin(Enumerable.range(1, 10), function(key, values){return key + '-' + values.join(',')}, function(v){return v % 5}, function(v){return v % 2}).toArray());

		console.log(Enumerable.asEnumerable({ a: 1, b: '2'}).toObject());

		console.log(Enumerable.asEnumerable([1,'a',true,2,undefined,'b']).ofType(Number).toArray());

		console.log(Enumerable.range(1, 10).skip(2).take(6).skipWhile(function(v){return v <= 4}).takeWhile(function(v){return v <= 7}).toArray());

	</script>
</head>
<body>

</body>
</html>